package com.hanhai.material.wages.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 *  实体类。
 *
 * @author youchuang
 * @since 2023/10/25 17:34:51
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(value = "ding_attendance_result_list")
public class DingAttendanceResultList implements Serializable {

    /**
     * 打卡结果
     */
    @Id
    private String id;

    /**
     * 用户ID
     */
    private String userId;

    private String jobNo;

    private String userName;

    private String groupName;

    /**
     * 工作日
     */
    private Timestamp workDate;

    /**
     * 打卡来源 ATM：考勤机 BEACON：IBeacon DING_ATM：钉钉考勤机 USER：用户打卡BOSS：老板改签 APPROVE：审批系统 SYSTEM：考勤系统 AUTO_CHECK：自动打卡
     */
    private String sourceType;

    /**
     * 标准打卡时间
     */
    private Timestamp planCheckTime;

    /**
     * 用户打卡时间
     */
    private Timestamp userCheckTime;

    /**
     * 班次ID
     */
    private Long classId;

    /**
     * 位置结果：
   
   Normal：范围内
   
   Outside：范围外
   
   NotSigned：未打卡
     */
    private String locationResult;

    /**
     * 排班ID
     */
    private Long planId;

    /**
     * 考勤组ID
     */
    private Long groupId;

    /**
     * 审批单ID
     */
    private String procinstId;

    /**
     * 考勤类型：OnDuty:上班，OffDuty:下班
     */
    private String checkType;

    /**
     * 打卡结果：
   
   Normal：正常
   
   Early：早退
   
   Late：迟到
   
   SeriousLate：严重迟到
   
   Absenteeism：旷工迟到
   
   NotSigned：未打卡
     */
    private String timeResult;

    /**
     * 创建时间
     */
    private Timestamp createTime;

}
